<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">   
    
    <f:metadata>
        <f:event type="preRenderView" 
                 listener="#{zonaBean.validarAcceso}"/>
    </f:metadata>
    
    <ui:define name="cabecera">
        <title>Gestión de Zonas</title>
        <link rel="shortcut icon"  
              href="/resources/imagenes/favicon.ico" />       
    </ui:define>   
    <ui:define name="contenido">
        <center>
            <p:panel 
                id="tablaZonaPnl" 
                header="Listados de Zonas"
                styleClass="contenido">
                <h:form 
                    id="tablaZonaFrm">
                    <p:dataTable 
                        id="tablaZonaDtb" 
                        emptyMessage="No hay registros disponibles."
                        value="#{zonaBean.listaEntidades}" 
                        var="zona" 
                        rowKey="#{zona.codigozona}"
                        rows="10"
                        paginator="true"
                        selectionMode="single"
                        paginatorPosition="bottom" 
                        resizableColumns="true">
                       
                        <p:column 
                            headerText="Departamento" 
                            sortBy="#{zona.municipio.departamento.nombre}" 
                            filterBy="#{zona.municipio.departamento.nombre}" 
                            filterMatchMode="contains"
                            style="font-size: 110%" >
                            <h:outputText 
                                id="departamentoTxt" 
                                value="#{zona.municipio.departamento.nombre}" />
                        </p:column>
                        <p:column 
                            headerText="Municipio" 
                            sortBy="#{zona.municipio.nombre}" 
                            filterBy="#{zona.municipio.nombre}" 
                            filterMatchMode="contains"
                            style="font-size: 110%">
                            <h:outputText 
                                id="nombreTxt" 
                                value="#{zona.municipio.nombre}" />
                        </p:column>
                        <p:column 
                            headerText="Localidad" 
                            sortBy="#{zona.localidad}" 
                            filterBy="#{zona.localidad}" 
                            filterMatchMode="contains"
                            style="font-size: 110%">
                            <h:outputText 
                                id="ubicacionTxt" 
                                value="#{zona.localidad}" />
                        </p:column>
                          
                        <p:column 
                            headerText="Modificar"
                            style="font-size: 110%"
                            rendered="#{sesionBean.verificarPermiso('modificar','zona')}">
                            <p:commandButton id="modificarBtn" 
                                             title="Modificar" 
                                             icon="ui-icon-pencil"
                                             actionListener="#{zonaBean.prepararModificacion(zona)}" 
                                             update=":guardarZonaFrm:guardarZonaPnl" 
                                             oncomplete="guardarZonaWgt.show()">
                                    <f:setPropertyActionListener target="#{zonaBean.operacionActual}"
                                                                           value="ACTUALIZACION"/>                                     
                                    
                            </p:commandButton>                
                        </p:column>
                        <p:column 
                            headerText="Eliminar"
                            style="font-size: 110%"
                            rendered="#{sesionBean.verificarPermiso('eliminar','zona')}">
                                 <p:commandButton 
                                     id="eliminarBtn"
                                    title="Eliminar" 
                                    actionListener="#{zonaBean.prepararEliminacion(zona)}"
                                    icon="ui-icon-trash"
                                    update="@form" 
                                    oncomplete="confirmacionWgt.show()">
                                     <f:setPropertyActionListener 
                                         target="#{zonaBean.operacionActual}" 
                                         value="ELIMINACION" />
                                 </p:commandButton>
                            
                        </p:column>                      
                         <f:facet name="footer">
                               <p:commandButton 
                                   id="agregarBtn" 
                                    icon="ui-icon-document"
                                    value="Nueva Zona"
                                    title="Agregar nueva zona"
                                    actionListener="#{zonaBean.prepararAdicion}"
                                    update=":guardarZonaFrm:guardarZonaPnl"
                                    oncomplete="guardarZonaWgt.show()"
                                    style="float:left; font-size: 110%"
                                    rendered="#{sesionBean.verificarPermiso('agregar','zona')}">
                                   <f:setPropertyActionListener 
                                       target="#{zonaBean.operacionActual}" 
                                        value="INSERCION" />
                               </p:commandButton>
                        </f:facet>
                    </p:dataTable>
                </h:form>
            </p:panel>
        </center>
    </ui:define>   
    <ui:define name="extra">
        <!-- Dialogo para Agregar y Modificar zonas -->
        <p:dialog id="guardarZonaDlg" 
                  widgetVar="guardarZonaWgt"
                  header="Datos de la Zona"  
                  modal="true" 
                  resizable="false"
                  closable="false"
                  draggable="false"
                  width="400"
                  style="font-size: 85%">
        <h:form 
            id="guardarZonaFrm">  
         <p:messages 
             id="mensajesMsg" 
             globalOnly="true" />
                    <p:panel 
                        id="zonaPnl">                          
                        <h:panelGrid 
                            id="guardarZonaPnl"
                            columns="2"
                            style="font-size: 110%">  
                           
                          
                             <h:outputLabel for="codigomunicipioSom" value="Municipio: " />
                             <p:selectOneMenu id="codigomunicipioSom" 
                                             value="#{zonaBean.entidad.municipio}" 
                                             filter="true"
                                             filterMatchMode="contains">
                                <f:selectItem itemLabel="Seleccione" 
                                               itemValue="" />
                                <f:selectItems value="#{zonaBean.listaMunicipio}" />
                                <f:converter converterId="municipioConverter" />   
                            </p:selectOneMenu>  
                             
                             <h:outputLabel for="localidadTxt" value="Localidad:" />
                                      <p:inputText id="localidadTxt" required="true"
                                                   value="#{zonaBean.entidad.localidad}">
                                                     <f:attribute name="regex" value="#{regex.textoobligatorio}" />
                                                     <f:attribute name="formato" value="Solo Caracteres" />
                                                     <f:validator validatorId="regexValidator" />
                                      </p:inputText>
                                      <p:panel style="border:none; font-size: 85%">
                                                 <p:tooltip for="localidadTxt" 
                                                            showEvent="mouseover" 
                                                            hideEvent="mouseout" 
                                                            rendered="#{zonaBean.tieneErrores('guardarZonaFrm:localidadTxt')}">
                                                            <p:message id="localidadMsg" 
                                                                       for="localidadTxt"
                                                                       display="text" />
                                                 </p:tooltip>
                                      </p:panel>
                            
                        </h:panelGrid>  
                    </p:panel>  
                
         <p:separator  />
         <br/>                
        <p:commandButton 
            value="Guardar" 
            title="Guardar datos"
            icon="ui-icon-disk" 
            oncomplete="if( !args.validationFailed )
                        guardarZonaWgt.hide()" 
            actionListener="#{zonaBean.guardarEntidad}"
            update="@form, :tablaZonaFrm:tablaZonaDtb"
            style="float:right; font-size: 85%"/>
        <p:commandButton 
            id="cancelarBtn"  
            actionListener="#{zonaBean.revertirCambios}"
            icon="ui-icon-cancel"
            onclick="guardarZonaWgt.hide()" 
            value="Cancelar" 
            title="Cerrar ventana"
            style="float:right; font-size: 85%"/>
        </h:form> 
        </p:dialog>
        <!-- Diálogo de confirmación de eliminación -->
        <p:confirmDialog 
            id="confirmacionDlg" 
            message="¿Está seguro que desea eliminar el registro?" 
            header="Eliminar Zona" 
            widgetVar="confirmacionWgt" 
            severity="alert"
            width="300"
            closable="false"
            style="font-size: 85%">   
            <h:form>
            <p:messages 
             id="mensajesMsg" 
             globalOnly="true" />
            <p:commandButton 
                value="Eliminar"
                actionListener="#{zonaBean.eliminarEntidad}"
                update="@form,:tablaZonaFrm:tablaZonaDtb"
                icon="ui-icon-trash"
                title="Eliminar el registro"
                oncomplete="if ( !args.validationFailed ) confirmacionWgt.hide()"
                style="float:right; font-size: 85%"/>
            <p:commandButton 
                value="Cancelar"
                icon="ui-icon-cancel"
                title="Cerrar ventana"
                update="@form"
                oncomplete="confirmacionWgt.hide()" 
                style="float:right; font-size: 85%">
                <f:setPropertyActionListener 
                    target="#{zonaBean.operacionActual}" 
                    value="NINGUNA" />
            </p:commandButton>   
            </h:form>
        </p:confirmDialog>
    </ui:define>
</ui:composition>
